package simpleness;

import org.junit.Test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Scanner;


/**
 * 字符串最后一个单词的长度
 *
 * @author sdm
 * @version 1.0
 * @date 2023/3/24 16:34
 */
public class HJ1 {

    @Test
    public void My(){

         //方式一：使用Scanner，low b 做法
         Scanner in = new Scanner(System.in);
         String s = "";
         while(in.hasNext()){
             s = in.next();
         }
         System.out.println(s.length());
    }


    @Test
    public void HJ11() throws IOException {

        /**
         *  java文本读取主要有字节流读取、字符流
         *      区别: 字节流可以既可以操作文本文件，也可以操作非文本文件，如一些二进制数据（图片，视频，对象），而字符流只能操作文本
         *      读取文本的方式，主要用 BufferedInputStream和BufferedReader
         *      BufferedReader 缓冲区的读者
         *      BufferedInputStream 缓冲区输入流
         */

        // 方式二： imputStream.read() 读取流，读到空格，归零，读到换行结束读取
        InputStream inputStream = System.in;
        int length = 0;
        char c;
        while ('\n' != (c = (char)inputStream.read())) {  //单引号表示字符 char类型,双引号是String 字符串
            length++;
            if (c == ' ') {
                length = 0;
            }

        }
        System.out.println(length);

    }


    @Test
    public void HJ13(){
        // 方式三：使用缓存区读者
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String line = null;
        try {
            line = bufferedReader.readLine();  // readLine() 读取一行，trim() 返回值为此字符串的字符串，删除任何前导和后面的空格
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(line.length() - line.lastIndexOf(" ") - 1);   // 7-4-1   line.length - 最后一个字符前长度（包含空格占位1）


    }


    @Test
    public void HJ14(){
        // 方式四: 使用Scanner
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        String[] sArr = s.split(" ");
        int length = sArr[(sArr.length-1)].length();
        System.out.println(length);
    }








}
